package com.cyan.note.service.manager;

import com.cyan.note.common.ApiResult;
import com.cyan.note.common.PageResult;
import com.cyan.note.dto.manager.service.ServiceQuickDTO;
import com.cyan.note.entity.Service;

import java.util.List;

/**
 * 店长端-服务管理服务接口
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
public interface ManagerServiceService {

    /**
     * 分页查询服务列表
     */
    ApiResult<PageResult<Service>> getServiceList(Long shopId, Integer page, Integer size, 
            String keyword, String status, String serviceType, Long categoryId, 
            String sortBy, String sortOrder);

    /**
     * 查询服务详情
     */
    ApiResult<Service> getServiceDetail(Long shopId, Long serviceId);

    /**
     * 新增服务
     */
    ApiResult<Void> createService(Service service, Long operatorId);

    /**
     * 更新服务信息
     */
    ApiResult<Void> updateService(Service service, Long operatorId);

    /**
     * 删除服务
     */
    ApiResult<Void> deleteService(Long shopId, Long serviceId, Long operatorId);

    /**
     * 查询快速选择服务列表（用于手动下单）
     */
    ApiResult<List<ServiceQuickDTO>> getQuickServices(Long shopId);

    /**
     * 更新服务状态
     */
    ApiResult<Void> updateServiceStatus(Long shopId, Long serviceId, String status, Long operatorId);

    /**
     * 复制服务
     */
    ApiResult<Void> copyService(Long shopId, Long serviceId, Long operatorId);

    /**
     * 批量更新服务排序
     */
    ApiResult<Void> batchUpdateSort(Long shopId, List<Long> serviceIds, Long operatorId);
}